<?php
/*
	小游戏开发
*/
defined('BY_JYA') or exit('error');
$_RQ['op']=$_RQ['op']?$_RQ['op']:'list';
if($_RQ['op']=='list'){
	$pindex = max(1, intval($_RQ['page']));
	$psize = 15;
	$total='';
	$list=pdo_getslice('core_develop_app_getlog',array(),array($pindex,$psize),$total,$fields,'','id desc');
	foreach($list as &$item){
		$item['zipfile']=tomedia($item['zipfile']);
	}
	$return['list']=$list?$list:array();
	$totalpage=ceil($total/$psize);
	$totalpage=intval($totalpage);
	$return['totalpage'] =$totalpage;
	$return['params']['page'] =$pindex;
	$return['htmls']=array(
		'type'=>'list',
		'tabs'=>array(
			array('op'=>'list','title'=>'生成记录'),
			array('op'=>'get','title'=>'一键转换小程序'),
		),
		'list'=>array('tip'=>'1、下载小程序，然后用小程序发布工具，上传发布小程序即可！</br>2、<red>如果第一次打开项目，出现异常，有时候是一些工具存在问题，可以关闭工具再次打开试试，或者预览模式试试！</red>','delall'=>false,'del_one'=>false,'edit'=>false,'pagelist'=>false,'data'=>'list','list'=>array(
			array('type'=>'string','title'=>'生成任务ID','name'=>'id'),
			array('type'=>'string','title'=>'日志名称','name'=>'title'),
			array('type'=>'time','title'=>'版本生成时间','name'=>'createtime'),
		),'action'=>array(
			array('type'=>'open','url'=>'zipfile','title'=>'下载'),
		)),
	);
	exi($return);
}
if($_RQ['op']=='get'){
	$item=array('type'=>'0','apptype'=>'ttapp');
	$return['item']=$item;
	$return['htmls']=array(
		'type'=>'edit',
		'post'=>'post',
		'tabs'=>array(
			array('op'=>'list','title'=>'生成记录'),
			array('op'=>'get','title'=>'一键转换小程序'),
		),
		'edit'=>array(
			array('type'=>'tip','title'=>'[温馨提示]：1、【微信小程序转换其他小程序】；转换后的小程序，基本可以直接使用（包括：授权登录，获取位置等功能），<red>如有待完善的，请及时提交工单</red>，我们会第一时间优化！</br>2、【H5页面转换微信小程序】，目前只能进行一些小程序特征替换，可以前期开发工作；</br>3、<red>【插件生成小程序源码】，是根据插件程序特性，生成的小程序源码，准确度较高，稍作优化就可以使用</red>！'),
			array('type'=>'radio','name'=>'type','title'=>'转换方式','options'=>'types'),
			array('type'=>'upfile','name'=>'upfile','title'=>'H5文件压缩包','show'=>array('type'=>1),'help'=>'上传H5文件压缩包。平台会进行简单的小程序特征替换，减少前期的开发工作量。'),
			array('type'=>'upfile','name'=>'upfile','title'=>'微信小程序压缩包','show'=>array('type'=>0),'help'=>'上传微信版小程序压缩包。平台会根据要生成的小程序种类，生成指定小程序。'),
			array('type'=>'select','name'=>'pluginname','title'=>'要生成的插件','show'=>array('type'=>2),'options'=>'plugins','option_value'=>'name'),
			array('type'=>'select','name'=>'wxapp_id','title'=>'选择关联小程序','options'=>'wxapps','show'=>array('type'=>2),'help'=>'指定一个关联小程序用于开发调试！'),
			array('type'=>'radio','name'=>'apptype','title'=>'要生成的类型','show'=>array('type'=>0),'options'=>'apptypes'),
		),
	);
	$return['types']=array('0'=>'微信小程序转换其他小程序','1'=>'H5页面转换微信小程序','2'=>'插件生成小程序源码');
	$return['apptypes']=array('ttapp'=>'抖音/头条小程序','aliapp'=>'支付宝小程序','baiduapp'=>'百度小程序');
	$return['plugins']=pdo_getall('core_plugins',array('type <>'=>4,'style <>'=>5),array('name','title'));
	$return['wxapps']=pdo_getall('core_account_wxapp',array('uniacid'=>$_SESSION['uniacid']),array('id','title'));
	exi($return);
}
if($_RQ['op']=='post'){
	$types=array('ttapp'=>'抖音/头条小程序','aliapp'=>'支付宝小程序','baiduapp'=>'百度小程序');
	$post=get_postdata();
	if(!$post['upfile'] && $post['type']!=2){
			exi('请先上传要转换的文件包！','error');
	}
	if(!$post['apptype'] && $post['type']==0){
			exi('请选择要生成的小程序种类！','error');
	}
	if($post['type']==2 && !$post['pluginname']){
			exi('请选择要生成的插件！','error');
	}
	if($post['type']==2 && !$post['wxapp_id']){
			exi('请选择要关联的小程序！','error');
	}
	if($post['type']!=2){
		$temp=ROOT_AT.'temp/'.random(30);mkdir($temp);
		$zipfile=ROOT_AT.$post['upfile'];
		if(!is_file($zipfile)){
				eci('小程序文件缺失！无法上传！','error');
		}
		cfc('files')->unzip($zipfile,$temp);
		if($post['type']==1){
			cfc('develop')->h5replace($temp);
			$title='H5转换成微信小程序';
		}else{
			cfc('develop')->appreplace($temp,$post['apptype']);
			$title=$types[$post['apptype']];
		}
	}else{
		$temp=cfc('develop')->pluginapp($post['pluginname'],$post['wxapp_id']);
		$title=pdo_getcolumn('core_plugins',array('name'=>$post['pluginname']),'title');
		$title .='-生成小程序';
	}
	$zipfile=cfc('files')->zip($temp,'source');
	cfc('files')->rmdirs($temp);
	$insert=array(
		'uniacid'=>$_SESSION['uniacid'],
		'mid'=>$_SESSION['uid'],
		'type'=>$post['type'],
		'apptype'=>$post['apptype'],
		'title'=>$title,
		'createtime'=>TIMESTAMP,
		'zipfile'=>$zipfile
	);
	pdo_insert('core_develop_app_getlog',$insert);
	exi('操作成功！','','list');
}
